#ifndef MESH_H
#define MESH_H

#include <vector>
#include "Asset.h"
#include "Vec3.h"
#include "Vec2.h"
#include <memory>

namespace Engine
{
	class Mesh : public Asset
	{
		private:
			std::vector <Vec3> m_posVec;
			std::vector <Vec3> m_normalVec;
			std::vector <Vec2> m_uvVec;

			struct Face
			{
				unsigned int verts[3];
				unsigned int normals[3];
				unsigned int uvs[3];
			};

			typedef std::vector <Face> FaceVec;
			FaceVec m_faces;
	
		public:
			bool Load(const std::string& filename);
			bool Load(rapidxml::xml_node <>* node);
			void Draw();
			~Mesh();
	};

	typedef std::shared_ptr <Mesh> MeshSPtr;
}

#endif